Solving Algebraic equations